import request from '@/utils/request.js'

// 注册
export const userRegisterService = (registerData) => {
    return request.post('/user/register', registerData)
}

// 登录
export const userLoginService = (loginData) => {
    return request.post('/user/login', loginData)
}

// 重置密码
export const userResetPwdService = (resetData) => {
    return request.post('/user/resetPwd', resetData)
}

// 获取用户空间信息
export const getUserSpaceService = () => {
    return request.get('/user/getUserSpace')
}

// 获取用户头像
export const getUserAvatarService = () => {
    return request.get('/user/getUserAvatar')
}

// 更新用户头像
export const updateAvatarService = (avatarUrl) => {
    const params = new URLSearchParams()
    params.append('avatarUrl', avatarUrl)
    return request.patch('/user/updateAvatar', params)
}

// 更新用户密码
export const updatePwdService = (pwdData) => {
    return request.patch('/user/updatePwd', pwdData)
}

// 用户重命名
export const updateUserNameService = (name) => {
    const params = new URLSearchParams()
    params.append('name', name)
    return request.patch('/user/rename', params)
}

// 退出登录
export const logoutService = () => {
    return request.get('/user/logout')
}

/**
 * 获取图形验证码
 * @returns {Promise} - 返回包含base64图片的响应
 */
export const getCheckCodeService = () => {
    return request.get('/checkCode')
}

/**
 * 发送邮箱验证码（需先通过图形验证码校验）
 * @param {Object} params - 请求参数
 * @param {String} params.email - 用户邮箱
 * @param {String} params.checkCode - 验证码
 * @returns {Promise} - 返回发送结果
 */
export const sendEmailCodeService = (params) => {
    return request.get('/sendEmailCode', {
        params
    })
}

// QQ登录
export const qqLoginService = (code) => {
    return request.get(`/user/qqLogin?code=${code}`);
}

// 获取用户信息
export const getUserInfoService = () => {
    return request.get('/user/getUserInfo')
}

/**
 * 获取所有用户信息
 * @param {Object} dto - 请求参数
 * @param {number} dto.pageNum - 页码
 * @param {number} dto.pageSize - 每页数量
 * @param {string} [dto.name] - 用户名，用于搜索
 * @returns {Promise} - 返回包含用户列表的响应
 */
export const getAllUserInfoService = (dto) => {
    return request.get('/admin/getAllUserInfo', { params: dto })
}

// 修改用户状态
export const updateUserStatusService = (id) => {
    return request.post(`/admin/updateUserStatus?id=${id}`)
}

// 加减用户总空间
export const updateUserTotalSpaceService = (dto) => {
    return request.post('/admin/updateUserTotalSpace', dto)
}

// 获取所有文件
export const getAllFileService = (dto) => {
    return request.post('/admin/getAllFile', dto)
}

// 管理员批量删除文件
export const adminDelFileService = (ids) => {
    return request.post('/admin/delFile', ids)
}

// 管理员重命名文件
export const adminRenameFileService = (dto) => {
    return request.post('/admin/rename', dto)
}